// ****************************************************************
// Copyright 2012, Stephan Burguchev
// e-mail: me@sburg.net
// ****************************************************************
// *
namespace Updater.tmp
{
    /// <summary>
    ///     A unit of work for the application update.
    /// </summary>
    public interface IUpdateCommand
    {
        /// <summary>
        ///     Perform the actions updating the resouces locked by the application and therefore supposing
        ///     to execute when the application is not running.
        /// </summary>
        /// <param name="update">
        ///     The update.
        /// </param>
        void ExecuteLauncherStartupActions(Update update);

        /// <summary>
        ///     Perform the actions capable to execute when the installed version of the application is still running.
        /// </summary>
        /// <param name="update">
        ///     The update.
        /// </param>
        void Prepare(Update update);
    }
}
